-; UltimateKEYS (for AutoHotkey v2.0).ahk - 2022-06-02
+; UltimateKEYS (for AutoHotkey v2.0).ahk - 2022-08-04
; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
SendMode "Input" ; optimizes for faster and more reliable input
-global dkEndKeys := "{bs}{del}{esc}{home}{end}" ; ends dead key input on specific keys
+global gEndKeys := "{bs}{del}{esc}{home}{end}" ; ends dead key input on specific keys
; Compose : Circumflex Accent (c)
cmpMacronStrokeAdd["Y"] := "{u+024e}" ; (Ɏ) Y with stroke
-; Compose : Stroke (/)
+; Compose : Oblique/Diagonal Stroke (/)
global cmpStroke := Map()
cmpStroke["a"] := "{u+2c65}" ; (ⱥ) a with stroke
cmpTilde[" "] := "{u+02dc}" ; (˜) small tilde
-; Compose : Hook and Latin Greek Letters (h)
+; Compose : Hook and Horn (h)
global cmpHook := Map()
cmpHook["b"] := "{u+0253}" ; (ɓ) b with hook
cmpHook["G"] := "{u+0193}" ; (Ɠ) G with hook
cmpHook["h"] := "{u+0266}" ; (ɦ) h with hook
cmpHook["H"] := "{u+a7aa}" ; (Ɦ) H with hook
+cmpHook["j"] := "{u+0267}" ; (ɧ) small letter heng with hook
cmpHook["k"] := "{u+0199}" ; (ƙ) k with hook
cmpHook["K"] := "{u+0198}" ; (Ƙ) K with hook
cmpHook["m"] := "{u+0271}" ; (ɱ) m with hook
cmpHook["M"] := "{u+2c6e}" ; (Ɱ) M with hook
cmpHook["n"] := "{u+0272}" ; (ɲ) n with left hook
cmpHook["N"] := "{u+019d}" ; (Ɲ) N with left hook
+cmpHook["o"] := "{u+01a1}" ; (ơ) o with horn
+cmpHook["O"] := "{u+01a0}" ; (Ơ) O with horn
cmpHook["p"] := "{u+01a5}" ; (ƥ) p with hook
cmpHook["P"] := "{u+01a4}" ; (Ƥ) P with hook
cmpHook["q"] := "{u+024b}" ; (ɋ) q with hook tail
cmpHook["R"] := "{u+2c64}" ; (Ɽ) R with tail
cmpHook["t"] := "{u+01ad}" ; (ƭ) t with hook
cmpHook["T"] := "{u+01ac}" ; (Ƭ) T with hook
+cmpHook["u"] := "{u+01b0}" ; (ư) u with horn
+cmpHook["U"] := "{u+01af}" ; (Ư) U with horn
cmpHook["v"] := "{u+028b}" ; (ʋ) v with hook
cmpHook["V"] := "{u+01b2}" ; (Ʋ) V with hook
cmpHook["w"] := "{u+2c73}" ; (ⱳ) w with hook
cmpHook["Y"] := "{u+01b3}" ; (Ƴ) Y with hook
cmpHook["z"] := "{u+0225}" ; (ȥ) z with hook
cmpHook["Z"] := "{u+0224}" ; (Ȥ) Z with hook
-cmpHook["a"] := "{u+0251}" ; (ɑ) latin small letter alpha
-cmpHook["A"] := "{u+2c6d}" ; (Ɑ) latin capital letter alpha
-cmpHook["e"] := "{u+025b}" ; (ɛ) small open e (latin small epsilon)
-cmpHook["E"] := "{u+0190}" ; (Ɛ) capital open E (latin capital epsilon)
-cmpHook["i"] := "{u+0269}" ; (ɩ) latin small letter iota
-cmpHook["I"] := "{u+0196}" ; (Ɩ) latin capital letter iota
-cmpHook["j"] := "{u+0263}" ; (ɣ) latin small gamma
-cmpHook["J"] := "{u+0194}" ; (Ɣ) latin capital gamma
-cmpHook["o"] := "{u+0254}" ; (ɔ) small open o
-cmpHook["O"] := "{u+0186}" ; (Ɔ) capital open O
-cmpHook["s"] := "{u+0283}" ; (ʃ) small letter esh
-cmpHook["S"] := "{u+01a9}" ; (Ʃ) capital letter esh
-cmpHook["u"] := "{u+028a}" ; (ʊ) latin small letter upsilon
-cmpHook["U"] := "{u+01b1}" ; (Ʊ) latin capital letter upsilon
-
-
-; Compose : Horn and Other Letters (H)
-
-global cmpHorn := Map()
-cmpHorn["o"] := "{u+01a1}" ; (ơ) o with horn
-cmpHorn["O"] := "{u+01a0}" ; (Ơ) O with horn
-cmpHorn["u"] := "{u+01b0}" ; (ư) u with horn
-cmpHorn["U"] := "{u+01af}" ; (Ư) U with horn
-cmpHorn["g"] := "{u+ab36}" ; (ꬶ) cross-tailed g
-cmpHorn["h"] := "{u+0267}" ; (ɧ) small letter heng with hook
-cmpHorn["j"] := "{u+a727}" ; (ꜧ) small letter heng
-cmpHorn["J"] := "{u+a726}" ; (Ꜧ) capital letter heng
-cmpHorn["k"] := "{u+0138}" ; (ĸ) small letter kra
-cmpHorn["s"] := "{u+017f}" ; (ſ) small long s
-cmpHorn["S"] := "{u+1e9b}" ; (ẛ) small long s with dot above
+
+
+; Compose : Latin Greek Letters and Variations (l)
+
+global cmpLatinGreek := Map()
+cmpLatinGreek["a"] := "{u+0251}" ; (ɑ) latin small letter alpha
+cmpLatinGreek["A"] := "{u+2c6d}" ; (Ɑ) latin capital letter alpha
+cmpLatinGreek["c"] := "{u+ab36}" ; (ꬶ) small letter script g with crossed-tail
+cmpLatinGreek["e"] := "{u+025b}" ; (ɛ) small letter open e (latin small epsilon)
+cmpLatinGreek["E"] := "{u+0190}" ; (Ɛ) capital letter open E (latin capital epsilon)
+cmpLatinGreek["f"] := "{u+017f}" ; (ſ) small letter long s
+cmpLatinGreek["F"] := "{u+1e9b}" ; (ẛ) long s with dot above
+cmpLatinGreek["g"] := "{u+0263}" ; (ɣ) latin small letter gamma
+cmpLatinGreek["G"] := "{u+0194}" ; (Ɣ) latin capital letter gamma
+cmpLatinGreek["h"] := "{u+a727}" ; (ꜧ) small letter heng
+cmpLatinGreek["H"] := "{u+a726}" ; (Ꜧ) capital letter heng
+cmpLatinGreek["i"] := "{u+0269}" ; (ɩ) latin small letter iota
+cmpLatinGreek["I"] := "{u+0196}" ; (Ɩ) latin capital letter iota
+cmpLatinGreek["k"] := "{u+0138}" ; (ĸ) small letter kra
+cmpLatinGreek["o"] := "{u+0254}" ; (ɔ) small letter open o
+cmpLatinGreek["O"] := "{u+0186}" ; (Ɔ) capital letter open O
+cmpLatinGreek["s"] := "{u+0283}" ; (ʃ) small letter esh
+cmpLatinGreek["S"] := "{u+01a9}" ; (Ʃ) capital letter esh
+cmpLatinGreek["u"] := "{u+028a}" ; (ʊ) latin small letter upsilon
+cmpLatinGreek["U"] := "{u+01b1}" ; (Ʊ) latin capital letter upsilon
; Compose : Turned Letters (t)
global cmpTurned := Map()
-cmpTurned["a"] := "{u+0250}" ; (ɐ) small turned a
-cmpTurned["A"] := "{u+2c6f}" ; (Ɐ) capital turned A
-cmpTurned["e"] := "{u+01dd}" ; (ǝ) small turned e
-cmpTurned["E"] := "{u+018e}" ; (Ǝ) capital reversed E
+cmpTurned["a"] := "{u+0250}" ; (ɐ) latin small letter turned a
+cmpTurned["A"] := "{u+2c6f}" ; (Ɐ) latin capital letter turned A
+cmpTurned["e"] := "{u+01dd}" ; (ǝ) latin small letter turned e
+cmpTurned["E"] := "{u+018e}" ; (Ǝ) latin capital letter reversed E
cmpTurned["q"] := "{u+0252}" ; (ɒ) latin small letter turned alpha
cmpTurned["Q"] := "{u+2c70}" ; (Ɒ) latin capital letter turned alpha
cmpTurned["v"] := "{u+028c}" ; (ʌ) latin small letter turned v
cmpTurned["V"] := "{u+0245}" ; (Ʌ) latin capital letter turned V
+cmpTurned["y"] := "{u+028e}" ; (ʎ) latin small letter turned y
; Compose : Currency Symbols ($)
cmpSymbols["c"] := "{u+2105}" ; (℅) care of
cmpSymbols["d"] := "{u+22c4}" ; (⋄) diamond operator
cmpSymbols["e"] := "{u+212e}" ; (℮) estimated symbol
-cmpSymbols["E"] := "{u+2709}" ; (✉) envelope
cmpSymbols["f"] := "{u+2640}" ; (♀) Venus symbol (female)
-cmpSymbols["g"] := "{u+2740}" ; (❀) white florette
-cmpSymbols["G"] := "{u+273f}" ; (✿) black florette
-cmpSymbols["h"] := "{u+2766}" ; (❦) floral heart
-cmpSymbols["H"] := "{u+2767}" ; (❧) rotated floral heart bullet
cmpSymbols["i"] := "{u+2300}" ; (⌀) diameter sign
cmpSymbols["l"] := "{u+2113}" ; (ℓ) script small l
cmpSymbols["L"] := "{u+2112}" ; (ℒ) Laplace transform
cmpSymbols["m"] := "{u+2642}" ; (♂) Mars symbol (male)
cmpSymbols["M"] := "{u+2120}" ; (℠) service mark
+cmpSymbols["n"] := "{u+2709}" ; (✉) envelope
cmpSymbols["q"] := "{u+2126}" ; (Ω) ohm sign (backwards compatibility)
-cmpSymbols["r"] := "{u+2619}" ; (☙) reversed rotated floral heart bullet
+cmpSymbols["r"] := "{u+211e}" ; (℞) prescription take (Recipere)
cmpSymbols["R"] := "{u+211e}" ; (℞) prescription take (Recipere)
cmpSymbols["t"] := "{u+2706}" ; (✆) telephone location sign
cmpSymbols["v"] := "{u+2713}" ; (✓) check mark
cmpSymbols["/"] := "{u+2e2e}" ; (⸮) reversed question mark
+; Compose : Florette and Floral Heart Symbols (f)
+
+global cmpFlorette := Map()
+cmpFlorette["r"] := "{u+2619}" ; (☙) reversed rotated floral heart bullet
+cmpFlorette["6"] := "{u+273e}" ; (✾) six petalled black and white florette
+cmpFlorette["b"] := "{u+273f}" ; (✿) black florette
+cmpFlorette["w"] := "{u+2740}" ; (❀) white florette
+cmpFlorette["8"] := "{u+2741}" ; (❁) eight petalled outlined black florette
+cmpFlorette["f"] := "{u+2766}" ; (❦) floral heart
+cmpFlorette["h"] := "{u+2767}" ; (❧) rotated floral heart bullet
+
+
; Compose : Playing Card Suit Symbols (S)
global cmpPlayingCardSuit := Map()
Send "{u+00d5}" ; (Õ) O with tilde
}
->!m::Send "{u+2030}" ; (‰) per mille sign
+>!m::Send "{u+00b5}" ; (µ) micro sign
>!+m::Send "{u+00b1}" ; (±) plus-minus sign
>!1::Send "{u+00a1}" ; (¡) inverted exclamation mark
>!`::
>!~:: {
- ihA := InputHook("L1", dkEndKeys)
+ ihA := InputHook("L1", gEndKeys)
ihA.Start()
ihA.Wait()
- ihB := InputHook("L1", dkEndKeys)
+ ihB := InputHook("L1", gEndKeys)
ihB.Start()
ihB.Wait()
if cmpHook.Has(ihB.Input)
Send cmpHook[ihB.Input]
}
- else if (ihA.Input == "H") {
- if cmpHorn.Has(ihB.Input)
- Send cmpHorn[ihB.Input]
+ else if (ihA.Input == "l") {
+ if cmpLatinGreek.Has(ihB.Input)
+ Send cmpLatinGreek[ihB.Input]
}
else if (ihA.Input == "t") {
if cmpTurned.Has(ihB.Input)
if cmpSymbols.Has(ihB.Input)
Send cmpSymbols[ihB.Input]
}
+ else if (ihA.Input == "f") {
+ if cmpFlorette.Has(ihB.Input)
+ Send cmpFlorette[ihB.Input]
+ }
else if (ihA.Input == "S") {
if cmpPlayingCardSuit.Has(ihB.Input)
Send cmpPlayingCardSuit[ihB.Input]